This page last changed on Jul 29, 2008 by tm.

Auv Driver Portnig Links

Driver porting and validation


Setup

  • Assuming a Debian and auv-linux software is installed, configured, built, setup, etc. (see below) and network and serial is working.
    • Note:  omniORB.cfg located in prj/auv-pkgs/omniORB needs to have bootstrap enabled.    Done in auv-pkgs cvs module.
    • auv@mvc-debian   pass: dorado1   ip  134.89.32.16 (static)
  • Serial Port assignements (per Duane 3/7/08)
    • CPU Card
      • ttyS0 (console) Iridium
      • ttyS1 Freewave
    • Xtreme/104 Isolated 12 port Card
      • ttyS2 Tailcone
      • ttyS3 no connect
      • ttyS4 Parosci
      • ttyS5 teledyne DVL - Navigator Broadband ADCP Version 9.18
      • ttyS6 ashtec GPS
      • ttyS7 Gulper (RS485)
      • ttyS8 no connect
      • ttyS9 Bluefin Batteries (RS485)
      • ttyS10 MVC_PIC
      • ttyS11 3DM_GX1
      • ttyS12 Drop Weight
      • ttyS13 USBL
    • LanTronix terminal servers
      • tcp:sci1-dmo1:10002 seabird
      • tcp:sci1-dmo1:10001 seabird
      • tcp:sci2-dmo1:14002 hydroscat
      • tcp:sci3-dmo1:14001 lisst
      •  

 



Driver Status  


Navigation drivers (first priority)


Status at a glance:

Tasks: NavigationDrivers


Status details:

ashtec(gps)
  • devices.cfg change:  /dev/ser7 -> /dev/ttyS6
  • 9600 8N1
  • Status  
    • ./ashtechapp -dev /dev/ttyS6
    • 'Partial' Basic functional - tested with no statellite acquisition.    
    • 'Soak Test' shows what looks like a memory leak.    Experimented (a day) with Duma and Valgrind in an effort to track down the leak.    Need more time to develop expertise with the tool.
bluefinBatt
  • devices.cfg change: /dev/ser10 -> /dev/ttyS9
  • Status  
    • Established serial connection.   BlueFinBatt device is no longer echoing characters (not fully confirmed).   HT modified jumper on Xtreme104 for 'no echo' on RS485.  
    • Driver test shows what looks like proper initialization - need to audit the test to see what is being exercised.
3dmgx1 Microstrain AHRS Compass
    • m3dmgx1Server -dev /dev/ser12     -useForNav
    • ./crossbow -dev /dev/ttyS11
    • Status   
      • Crossbow compass is no longer on the vehicle - this has been replaced by the 3DMGX1 compass.    
      • Tom O ported the 3dmgx1 driver.   The driver is passing serial data though there are issues with the data stability (could be the compass). 
      • July 9:  Hans has made the docking vehicle available to finish the porting / validation.   The 3dmgx1 is not on the vehicle, but rather the Crossbow DMU
        • The DMU baud rate can be changed per the following procedure:
        • 1. Start with the DMU connected to the serial interface, with your software set to the default baud rate of 38400.
        • 2. Send the ASCII character "b" (0x62 hex) to the DMU. In a terminal program like minicom simply type the letter "b". The DMU is case sensitive. The DMU will respond "B" (0x42 hex).
        • 3. Now change the baud rate of your terminal software. 
        • 4. Send the ASCII character "a" (61 hex). The DMU will detect the character and automatically match the baud rate your software is using. Upon successful operation, the DMU will return the character "A" (0x41 hex) at the new baud rate.
        • 5. You can now use the DMU at the new baud rate. The new baud rate setting is not permanent; therefore, this process must be repeated after any power reset.
        • Sanity check the Crossbow* Command Query DMU Version, Character(s) Sent v, Response ASCII string*  Command Query DMU Serial Number, Character(s) Sent S, Response Binary serial number data packet that consists of a header byte (FF), the serial number in 4 bytes, and a checksum byte.
    • Fixed a bug in checkChecksum.   The struct overlay on the record was reading testPacket->Checksum as zero.   There were too many castings, so rewrote the routine to operate directly on the char record - BUG FIXED.
parosci -  Paroscientific pressure sensor
    • devices.cfg change:  /dev/ser5 -> /dev/ttyS4
    • ./parosci -dev /dev/ttyS4
  • wait 60sec (or so) for 'ping service worksite' to timeout
  • Actions:
    • added parosci.cfg to auv-linux/onboard/sampleConfig from QNX dorado389
    • fixed termios baud issue (9600 -> B9600), no longer fails cfsetispeed
    • Have obtained manual - parosci is unresponsive to serial commands via minicom
    • Parosci does not respond with the serial number when requested by the driver.   Have instrumented the writeCommand and see the correct strings are being sent.
    • Manual indicates commands should start with an asterisk (the request for serial number does not have this).
    • Called Steve Smith at ParoScientific  425-883-8700 x252.   He indicated *9900VR should get a response no matter what the device ID.
      • Using minicom (trying both 'Add Linefeed ON and OFF): The device does respond when incorrect command sequences are sent - *(00 will start echoing due to invalid ID.
      • No response to *9900VR
      • No response to *0100SN
    • Write a simple serial program to make sure the correct byte string is sent to parosci.
      • *9900VR<0x0d><0x0a> responds with *0001VR=R1.0
    • *0100SN<0x0d><0x0a> responds with *0001SN=87761
    • *0100P3<0x0d><0x0a> responds with *000116.02
    • Minicom can be used - need to terminate the *0100SN request with <ctrl-j>, (ctrl-m, ctrl-j is 0x0d, 0x0a in minicom)
  • Next step is to hook up the serial protocol analyzer.  
    • Made a cable with grab leads, but it's too hard to get the connection.    Tom Marion made a breakout cable with the correct 2x5 2mm connectors.   Verified commands in the protocol analyzer
  • With the fix in place in readNChars (timeouts and bytecnt are chars not ints), have verified parosci is getting a response to serial number request.
    •   Fixed a bug in sscanf which was incorrectly parsing
    • Added retry to fix issue when parosci is left streaming pressure data, the serial number is not read correctly.
    • Fixed math overflow on timeout calculations in SerialDevice.cc (framework).   Long / Int changed to Long Long.    This fixed some of the timeout problems, however confirm still bails out.
    • A problem in framework 'confirm' API persisted even with fix for timeout overflow.    Since time is getting short - capped off investigation of root cause, and wrote readResponse and readAChar routines in framework which fixes the timeout problem (layers of timeout in readUntil, readBytes, etc.)
    • Parosci ran for an hour - data integrity is questionable as pressure data is ranging from negative to positive.
    • Found a problem
    •  Protocol Notes:
      • tx rx pre-conditions post-conditions
        *SN0100<0x0d><0x0a> *SN0001=87761<0x0d><0x0a>  1) powered up
        2) streamnig pressure data from previous run
        waiting for a command
        *0100EW*0100MD=0<0x0d><0x0a> *0001MD=0<0x0d><0x0a>    
  • Status
    • Passes basic functional test with exceptions (data processing and serail timeout).   See attachment for test results. 
    • Fixed bug in baud set
    • Fixed bug in read serial number (sscanf and retries)
    • Fixed timeout bug by replacing 'confirm' in init with readResponse.   Later fixed bug in confirm by creating readAChar which uses termios instead of ioctl.   Did not back out readResponse changes (they work).
    • Soak test runs overnight.     
      • There are some ERRORs due timeout or bad data (dropped bytes?) in the test results, and the driver recovers. 
      • Note: Data does not look right (log4cxx = INFO), however the data read from the instrument looks good - suspect something in the signal processing is not properly setup.   Fixed struct overlay bug which was causing data error.
sonardyne usbl
  • No test executable available

tailcone
  • changes in devices.cfg /dev/ser3 -> /dev/ttyS2
  • ./tailcone -dev /dev/ttyS2
  • Cautions:
    • Recommend running tailcone tests while observing the tailcone
    • Don't run tailcone for longer than 10 to 15 minutes (there is a spring seal that will wear out / overheat)
  • Status
    • Ran the tailcone gui with Tom O.    Driver passes basic functional test.    Worked with Tom O to identify 4msec timing skew between runs on Fedora Core 6 updated to 2.6.22 kernel and debian 4.0 (2.6.18) on some tailcone test results.    Recommended fix is to update the kernel.
Teledyne dvl - Doppler Velocity Log
  • changes in devices.cfg  /dev/ser6 -> /dev/ttyS5
  • Actions
    • Took dvl.cfg from QNX dorado389 (from Rob) and placed the dvl.cfg file in sampleConfig directory
    • Fixed tempios baud problem (cfsetispeed error) with assist from Hans.
    • The problem being chased is readNChars is returning pre-maturely (read of 1466 is returning with 3 to 60 bytes which is causing the driver to fail)
      • Have tried a sleep to allow the termio buffer to fill - does not help.
      • In progress Reading up on termio and analyzing termio setup...
      • Analysis / test is hampered (slowed) by CORBA 1 minute timeout (see corbaUtils)
      • readNChars had a bug in raw where 0 instead of count was passed - TO fixed it, but readNchars is still not working right.    Verified that the constructor for TeledyneDVL is passing MaxRecordSize of 7000
  • Status
    • Done  
    • Fixed a bug where the number of bytes was not being set in termios - raw(0,timeout) was changed to raw(count, timeout)
    • Found and fixed another bug where the number of bytes being requested (1466) was being passed to a char field in termios struct resulting in a modulo 256 of 1466 being passed to termios
    • Timeout value of 4000 is also being fed to a char (byte) type in termios structure.   Modifying the timeout to 255 has side effects (driver does not work reliablyy, though this could be something else).    Changing termios_p.c_cc[VTIME] to 255 when passed something bigger does work.
    • PD0 operation is passing basic functional test, but there is a bug blocking long term runs suspecting UART fifo depth.     
    • Hans confirmed and fixed the UART setup using something like auto configure for the serial drivers at startup (Debian install issue). 


Science drivers


Status at a glance: 

Tasks: ScienceDrivers
Add Task:




Status details:

  • Seabird
    • seabirdServer -n ctdDriver2 -dev tcp:sci1-dmo1:10002
    • ./seabird37 -n ctdDriver2 -dev tcp:sci1-dmo1:10002
    • seabirdServer -n ctdDriver -dev tcp:sci1-dmo1:10001
    • Actions:
    • Status
      • In progress...  getting an error with seabird25 - 06:16:34.747 ERROR [AttributeParser] Attributes::parse() - Couldn't open CTD attributes file "tcp:sci1-dmo1:10002"
  • Hydroscat - HS2 Backscatter optical sensor
    • tcp:sci2-dmo1:14002 
    • Actions
      • Fixed bug in sscanf on snorm values (%hx -> %1hx).  Added 'STOP' to init.   Fixed segfault in log write.   Fixed segfault when run with terminal server.
    • Status
      • Driver passes basic functional test.
  • Biolume - Biolumenescence pump and PMT
    • tcp:sci3-dmo1:14002
    • Actions
    • Status
      • Not tested yet
  • lisst - Laser based particle size analyzer
    • tcp:sci3-dmo1:14001 
    • Actions
      • Added 'STOP' to init.   debugged and running from Tom's FC6 workstation 6 Mar 08
    • Status
      • Driver passes basic functional test
  • imagenex
  • Gulper
    • no linux driver currently available (should be a simple 'fire' command)
  • Other (from QNX cfg file)
    • dropWeightServer -dev /dev/ser13
      • no linux driver currently available
    • OCR507 -dev tcp:sci4-dmo1:14001 
    • isus Optical Nitrate sensor
      • tcp:sci2-dmo1:14001
    • mvc-pic
      • diagnostic info is being sent on serial port - no driver required (or available)
    •  usbl
      • no linux driver currently available.   HT indicates not to worry about it.
    • iridium
      • no linux driver currently available.   HT indicates this is being replaced with <something>

-----------------------------------------------------------------------------------

Drivers Debug output (Thoms notes to self):

  • [9 July 2008] Crossbow
    Table 4. CrossBow AHRS300CA Data Packet Format
    Byte VG Mode Scaled Sensor Mode Voltage Mode
    0 Header (255) Header (255) Header (255)
    1 Roll Angle (MSB) Roll Angular Rate (MSB) Roll Gyro Voltage (MSB)
    2 Roll Angle (LSB) Roll Angular Rate (LSB) Roll Gyro Voltage (LSB)
    3 Pitch Angle (MSB) Pitch Angular Rate (MSB) Pitch Gyro Voltage (MSB)
    4 Pitch Angle (LSB) Pitch Angular Rate (LSB) Pitch Gyro Voltage (LSB)
    5 Heading Angle (MSB) Yaw Angular Rate (MSB) Yaw Gyro Voltage (MSB)
    6 Heading Angle (LSB) Yaw Angular Rate (LSB) Yaw Gyro Voltage (LSB)
    7 Roll Angular Rate (MSB) X-Axis Acceleration (MSB) X-Axis Accel Voltage (MSB)
    8 Roll Angular Rate (LSB) X-Axis Acceleration (LSB) X-Axis Accel Voltage (LSB)
    9 Pitch Angular Rate (MSB) Y-Axis Acceleration (MSB) Y-Axis Accel Voltage (MSB)
    10 Pitch Angular Rate (LSB) Y-Axis Acceleration (LSB) Y-Axis Accel Voltage (LSB)
    11 Yaw Angular Rate (MSB) Z-Axis Acceleration (MSB) Z-Axis Accel Voltage (MSB)
    12 Yaw Angular Rate (LSB) Z-Axis Acceleration (LSB) Z-Axis Accel Voltage (LSB)
    13 X-Axis Acceleration (MSB) X-Axis Magnetic Field (MSB) X-Axis Mag Voltage (MSB)
    14 X-Axis Acceleration (LSB) X-Axis Magnetic Field (LSB) X-Axis Mag Voltage (LSB)
    15 Y-Axis Acceleration (MSB) Y-Axis Magnetic Field (MSB) Y-Axis Mag Voltage (MSB)
    16 Y-Axis Acceleration (LSB) Y-Axis Magnetic Field (LSB) Y-Axis Mag Voltage (LSB)
    17 Z-Axis Acceleration (MSB) Z-Axis Magnetic Field (MSB) Z-Axis Mag Voltage (MSB)
    18 Z-Axis Acceleration (LSB) Z-Axis Magnetic Field (LSB) Z-Axis Mag Voltage (LSB)
    19 X-Axis Magnetic Field (MSB) Temp Sensor Voltage (MSB) Temp Sensor Voltage (MSB)
    20 X-Axis Magnetic Field (LSB) Temp Sensor Voltage (LSB) Temp Sensor Voltage (LSB)
    21 Y-Axis Magnetic Field (MSB) Time (MSB) Time (MSB)
    22 Y-Axis Magnetic Field (LSB) Time (LSB) Time (LSB)
    23 Z-Axis Magnetic Field (MSB) Checksum Checksum
    24 Z-Axis Magnetic Field (LSB)    
    25 Temp Sensor Voltage (MSB)    
    26 Temp Sensor Voltage (LSB)    
    27 Time (MSB)    
    28 Time (LSB)    
    29 Checksum    
      • [Bug - build] Top level build fails, though enough is built to enable driver development
      • [Bug - blocking] Fixed bug in 'checkChecksum that was blocking processRecord.   Due to unpacked data (code is not compiled to pack on byte boundary, pragma pack(1)) struct overly on serial byte stream (testPacket->checksum was zero, yet the proper checksum is in the 'record' byte buf).   Changed checkChecksum to operate on byte stream with fixed offset for checksum location.
      • Output looks wrong after fixing checksum problem.    Confirmed to be the 'pack' problem.   Bug fixed by building the data structure from the bytes, rather than overlaying and byte swapping.
      • Here's the output showing raw data stability but bad data (before bug fix).
        • 13:40:00.467 INFO [Crossbow] Hdr=ff, RolA=035a, PitA=047a, HdgA=1d89
          13:40:00.469 INFO [Crossbow]    R =  171.58 : P = -167.32 : Y =    7.19
          13:40:01.471 INFO [Crossbow] Hdr=ff, RolA=0359, PitA=0472, HdgA=1d86
          13:40:01.473 INFO [Crossbow]    R =  160.33 : P = -171.54 : Y =    1.57
          13:40:02.471 INFO [Crossbow] Hdr=ff, RolA=0358, PitA=0475, HdgA=1d94
          13:40:02.473 INFO [Crossbow]    R =  164.55 : P = -151.85 : Y =  -84.22
          13:40:03.476 INFO [Crossbow] Hdr=ff, RolA=0359, PitA=0475, HdgA=1d94
          13:40:03.477 INFO [Crossbow]    R =  164.55 : P = -151.85 : Y =    5.78
          13:40:04.479 INFO [Crossbow] Hdr=ff, RolA=035d, PitA=0475, HdgA=1d89
          13:40:04.481 INFO [Crossbow]    R =  164.55 : P = -167.32 : Y =   -5.47
          13:40:05.483 INFO [Crossbow] Hdr=ff, RolA=035c, PitA=0475, HdgA=1d87
          13:40:05.485 INFO [Crossbow]    R =  164.55 : P = -170.13 : Y =   17.03
          13:40:06.488 INFO [Crossbow] Hdr=ff, RolA=035b, PitA=0476, HdgA=1d86
          13:40:06.489 INFO [Crossbow]    R =  165.95 : P = -171.54 : Y =   -5.47
          13:40:07.492 INFO [Crossbow] Hdr=ff, RolA=0357, PitA=0477, HdgA=1d93
        • Here's the data after the bug fix.
          14:16:37.203 INFO [Crossbow] Hdr=ff, RolA=035a, PitA=0478, HdgA=1d97
          14:16:37.204 INFO [Crossbow]    R =    4.71 : P =    6.28 : Y =   41.61
          14:16:38.206 INFO [Crossbow] Hdr=ff, RolA=0359, PitA=0479, HdgA=1d96
          14:16:38.207 INFO [Crossbow]    R =    4.71 : P =    6.29 : Y =   41.61
          14:16:39.210 INFO [Crossbow] Hdr=ff, RolA=0356, PitA=0476, HdgA=1d93
          14:16:39.211 INFO [Crossbow]    R =    4.69 : P =    6.27 : Y =   41.59
          14:16:40.214 INFO [Crossbow] Hdr=ff, RolA=0358, PitA=0478, HdgA=1d94
          14:16:40.215 INFO [Crossbow]    R =    4.70 : P =    6.28 : Y =   41.59
          14:16:41.218 INFO [Crossbow] Hdr=ff, RolA=035c, PitA=047a, HdgA=1d94
          14:16:41.219 INFO [Crossbow]    R =    4.72 : P =    6.30 : Y =   41.59
          14:16:42.223 INFO [Crossbow] Hdr=ff, RolA=0356, PitA=0477, HdgA=1d96
          14:16:42.223 INFO [Crossbow]    R =    4.69 : P =    6.28 : Y =   41.61
          14:16:43.227 INFO [Crossbow] Hdr=ff, RolA=035f, PitA=0474, HdgA=1d96
          14:16:43.227 INFO [Crossbow]    R =    4.74 : P =    6.26 : Y =   41.61
          14:16:44.231 INFO [Crossbow] Hdr=ff, RolA=0357, PitA=0473, HdgA=1d96
          14:16:44.232 INFO [Crossbow]    R =    4.70 : P =    6.26 : Y =   41.61
          14:16:45.235 INFO [Crossbow] Hdr=ff, RolA=035c, PitA=0476, HdgA=1d96
          14:16:45.235 INFO [Crossbow]    R =    4.72 : P =    6.27 : Y =   41.61
          14:16:46.239 INFO [Crossbow] Hdr=ff, RolA=0360, PitA=0478, HdgA=1d96
          14:16:46.240 INFO [Crossbow]    R =    4.75 : P =    6.28 : Y =   41.61
    • [Bug - minor] Serial number is read incorrectly.   NOT FIXED as it does not block tank test on July 17 
      • 12:54:51.390 INFO [Crossbow] Serial Number: ff000043
      • 12:54:51.393 INFO [Crossbow] Crossbow.cc: I think the serial number is 4278190147 (ff000043)  <<-- 4278190147 looks incorrect.
      • According to the Manual:  * The DMU will respond with a serial number datapacket that consists of a header byte (FF), the serial number in 4 bytes, and a checksum byte.  The serial number bytes should be interpreted as a 32-bit unsigned integer. For example, the serial number 9911750 would be sent as the four bytes 00 97 3D C6.
    • [Bug - minor] termios set baud failure.   Port is operational at 38400, but attempts to set it fail.   This will be pushed off until after tank test.
      • 14:56:03.785 ERROR [SerialDevice] cfsetispeed() to baud 38400 failed
        14:56:03.785 ERROR [SerialDevice] cfsetospeed() failed
      •  
  • [11 July 2008] Parosci on docking AUV
    • [Bug - Blocking with workaround] Bad read of serial number is preventing the driver test from executing.    Looks like the Serial number is requested, but the Parosci is busy streaming pressure readings (*000130.13829)
      • 15:05:42.226 DEBUG [ParosciApp] Leaving ParosciApp.initialize()
        15:05:42.227 INFO [AuvApplication] run() - just sleeps by default
        15:05:42.341 DEBUG [Parosci] writeCommand *0100SN
      • 15:05:42.358 DEBUG [Parosci] Serial Number response: *000130.13829
        15:05:42.358 ERROR [Parosci] sscanf ret 0, incorrect serial number format
        15:05:42.360 ERROR [AuvService] Read incorrect serial number format
      • Went into minicom and got the parosci to stop streaming (actually, just opening minicom showed a series of pressure readings with the last output being the serial number).   Maybe a flush in the right place is needed.
    • Ran the test again, starting with a 'non-streaming' parosci.
      • 15:15:58.779 INFO [Parosci] Paroscientific configured.
        15:15:58.850 DEBUG [StreamSerialDriver] run() - start main loop
        15:15:58.851 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord()
        15:15:58.985 DEBUG [Parosci] reply with value is 30.13823^M
        15:15:58.986 INFO [Parosci] depth is: 1146999941
      • Changed format character for depth from int to float
      • 15:50:02.429 DEBUG [Parosci] reply with value is 30.13807
        15:50:02.430 INFO [Parosci] depth is:  -0.1513
        15:50:02.431 DEBUG [Parosci] 1 bytes buffered now
        15:50:02.434 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord()
        15:50:02.610 DEBUG [Parosci] reply with value is 30.13807
        15:50:02.611 INFO [Parosci] depth is:  -0.1513
        15:50:02.611 DEBUG [Parosci] 1 bytes buffered now
        15:50:02.614 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord()
        15:50:02.790 DEBUG [Parosci] reply with value is 30.13807
        15:50:02.790 INFO [Parosci] depth is:  -0.1513
        15:50:02.791 DEBUG [Parosci] 1 bytes buffered now
        15:50:02.794 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord()
        15:50:02.969 DEBUG [Parosci] reply with value is 30.13807
        15:50:02.970 INFO [Parosci] depth is:  -0.1513
        15:50:02.971 DEBUG [Parosci] 1 bytes buffered now
        15:50:02.974 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord()
        15:50:03.153 DEBUG [Parosci] reply with value is 30.13807
        15:50:03.155 INFO [Parosci] depth is:  -0.1513
        15:50:03.155 DEBUG [Parosci] 1 bytes buffered now
        15:50:03.158 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord()
        15:50:03.244 DEBUG [Parosci] getting temp period
        15:50:03.356 DEBUG [Parosci] writeCommand *0100Q1
      • 15:50:03.484 DEBUG [Parosci] writeCommand *0100Q1
      • 15:50:03.593 DEBUG [Parosci] reply with value is 5.840225
        15:50:03.704 DEBUG [Parosci] writeCommand *0100P2
      • 15:50:03.719 INFO [Parosci] tempPeriod is: -247390116
        15:50:03.720 DEBUG [Parosci] 0 bytes buffered now
        15:50:03.723 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord()
        15:50:03.925 DEBUG [Parosci] reply with value is 30.13809
        15:50:03.926 INFO [Parosci] depth is:  -0.1744
        15:50:03.927 DEBUG [Parosci] 1 bytes buffered now
        15:50:03.930 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord()
        15:50:04.105 DEBUG [Parosci] reply with value is 30.13807
        15:50:04.107 INFO [Parosci] depth is:  -0.1513
        15:50:04.107 DEBUG [Parosci] 1 bytes buffered now
        15:50:04.110 DEBUG [StreamSerialDriver] StreamSerialDriver::run() - call readRecord()
        15:50:04.285 DEBUG [Parosci] reply with value is 30.13809
        15:50:04.286 INFO [Parosci] depth is:  -0.1744
        15:50:04.287 DEBUG [Parosci] 1 bytes buffered now
  • Hydroscatauv@mvc-debian:~/prj/auv-linux/onboard/devices/hydroscat$ ./hydroscat -dev tcp:
    sci2-dmo1:14002
  • Output on March 10:
    • auv@mvc-debian4:~/prj/auv-linux/onboard/devices/hydroscat$ . run
      Reading log4cxx configuration file "/home/auv/prj/auv-linux/onboard/sampleConfig
      /log4cxx.cfg"
      IOR:010000001800000049444c3a6175762f487964726f7363617449463a312e3000010000000000
      000064000000010102000d0000003133342e38392e33322e313600004f040e000000fe9154d54700
      002ea7000000000200000200000000000000080000000100000000545441010000001c0000000100
      0000010001000100000001000105090101000100000009010100
      08:32:33.657 INFO [Hydroscat] stopping Hydroscat...
      08:32:33.712 INFO [AuvApplication] You should override AuvApplication::run()
    • 08:32:38.180 ERROR [Hydroscat] Hydroscat:bad response to LOG cmd: !Use SHUTTER c
      ommand to enable shutter.
    • 08:32:38.181 INFO [Hydroscat] stopping Hydroscat...
      08:32:42.702 INFO [Hydroscat] Hydroscat:starting Hydroscat...
      08:32:42.703 INFO [Hydroscat] Hydroscat:started
      08:32:42.755 ERROR [Hydroscat] processRecord(): record too short(42):
      ' Burst cycle: 0 minutes (not in effect)
    • 08:32:42.762 ERROR [Hydroscat] processRecord(): record too short(43):
      ' Total duration: 0 hours (not in effect)
    • 08:32:42.768 ERROR [Hydroscat] processRecord(): record too short(19):
      'Shutter control:
    • 08:32:42.774 ERROR [Hydroscat] processRecord(): record too short(33):
      ' Shutter enabled: 0 (DISABLED)
    • 08:32:42.780 ERROR [Hydroscat] processRecord(): record too short(27):
      ' Automatic open/close: 0
    • 08:32:42.786 ERROR [Hydroscat] processRecord(): record too short(27):
      ' Open/close time: 6 secs
    • 08:32:42.792 ERROR [Hydroscat] processRecord(): record too short(22):
      ' Open direction: CW
    • 08:32:42.798 ERROR [Hydroscat] processRecord(): record too short(28):
      ' Shutter state is UNKNOWN
    • 08:32:42.804 ERROR [Hydroscat] processRecord(): record too short(20):
      'Sampling stopped.
    • 08:32:42.810 ERROR [Hydroscat] processRecord(): record too short(22):
      '03/10/2008 08:32:38
    • 08:32:42.816 ERROR [Hydroscat] processRecord(): record too short(38):
      'Time Resolution: high (0.01 second)
    • 08:32:42.822 ERROR [Hydroscat] processRecord(): record too short(41):
      !Use SHUTTER command to enable shutter.
    • 08:32:42.828 ERROR [Hydroscat] processRecord(): record too short(24):
      'Sampling and Logging:
    • 08:32:42.834 ERROR [Hydroscat] processRecord(): record too short(24):
      ' Period: 0.25 seconds
    • 08:32:42.839 ERROR [Hydroscat] processRecord(): record too short(26):
      ' Start delay: 3 seconds
    • 08:32:42.846 ERROR [Hydroscat] processRecord(): record too short(29):
      ' Sleep when memory full: 0
    • 08:32:42.851 ERROR [Hydroscat] processRecord(): record too short(24):
      ' Start on power up: 0
    • 08:32:42.857 ERROR [Hydroscat] processRecord(): record too short(23):
      'Burst mode: 0 .
    • 08:32:42.863 ERROR [Hydroscat] processRecord(): record too short(26):
      ' Warmup time: 0 seconds
    • 08:32:42.869 ERROR [Hydroscat] processRecord(): record too short(45):
      ' Burst duration: 0 seconds (not in effect)
    • 08:32:42.875 ERROR [Hydroscat] processRecord(): record too short(42):
      ' Burst cycle: 0 minutes (not in effect)
    • 08:32:42.881 ERROR [Hydroscat] processRecord(): record too short(43):
      ' Total duration: 0 hours (not in effect)
    • 08:32:42.887 ERROR [Hydroscat] processRecord(): record too short(19):
      'Shutter control:
    • 08:32:42.893 ERROR [Hydroscat] processRecord(): record too short(33):
      ' Shutter enabled: 0 (DISABLED)
    • 08:32:42.898 ERROR [Hydroscat] processRecord(): record too short(27):
      ' Automatic open/close: 0
    • 08:32:42.904 ERROR [Hydroscat] processRecord(): record too short(27):
      ' Open/close time: 6 secs
    • 08:32:42.910 ERROR [Hydroscat] processRecord(): record too short(22):
      ' Open direction: CW
    • 08:32:42.916 ERROR [Hydroscat] processRecord(): record too short(28):
      ' Shutter state is UNKNOWN
    • The driver then processes records normally without fault (tested for 20 minutes)
  • Ashtec GPS driver
    • Upon application of power,
      • The DG16 runs a built-in self test of its internal memory, and thereafter periodically self-tests various functions during normal operation.   Test results are stored for output on command.
      • After self test, the DG16 initializes its battery-backed RAM. If the battery-backed RAM fails self-test (due, for example, to a low battery backup condition), the DG16 clears and reports the loss of stored data, then initializes its channels and begins searching for all satellites within the field of view of its antenna. 
      • $PASHQ,HST to view results of self-diagnostic
      • Time to First Fix (TTFF).
        • Re-acquisition 3 seconds
        • Hot Start 11 seconds
        • Warm Start 35 seconds
        • Cold Start 90 seconds
      • The $PASHQ,RIO command queries for the receiver's configuration. The response message includes version numbers for the processor and channel firmware, a list of installed options, and the receiver's serial identification number.  The response is output in the format:$PASHR,RIO,f1,f2,f3,f4,f5*cc* f1 Receiver name (maximum 10 characters)
        • f2 Main processor firmware version (maximum 10 characters)
        • f3 Channel Firmware version (maximum 10 characters). If not applicable, this field is empty
        • f4 Option setting (maximum 42 characters). ASCII characters represent installed options.
        • f5 Receiver serial number (maximum 20 characters). Underscores represent blank fields
        • cc Checksum. XOR (exclusive or) of all characters between, but not including, the dollar sign ($) and asterisk characters
        • Option Description: (typical string looks like $PASHR,RIO,DG16,GM00,,1OPUBKLE_C-NYXDR--, 710029150420*4D * Position/raw update rate:  [W = 20 Hz], [T = 10 Hz], [5 = 5 Hz], [2 = 2 Hz], [1 = 1 Hz],
        • [O] Raw data output
        • [P] Carrier phase tracking
        • [U] Differential RTCM - remote station
        • [B] Differential RTCM - base station
        • [K] RTCM Type 18/19 message generation (available only with RTCM base option)
        • [L] Timing pulse output (1PPS)
        • [E] Photogrammetry event marker
        • [C] Strobe correlator
        • [N] Beacon (Not applicable to DG14)
        • [Y] SBAS
        • [X] User-defined messaging (Not applicable to DG14)
        • [D] Multi-base differential
        • [R] Third serial port (C) (Not applicable to DG14)
        • [A] Altitude limit removed
        • [V] Speed limit removed
    • After the DG16 is powered and running, you must send commands in order to receive data (such as antenna position).
    • When using a terminal, make sure CRLF outgoing is enabled
    • The commands used with the DG16 are divided into two groups: set commands and query commands.   Use Set commands to change the DG16's operating parameters or turn on or off output messages. Set commands begin with the command string $PASHS.   A Set cmd is acknowledged with $PASHR,ACK*3D.
    • Use Query commands to request information from the DG16, such as the current operating parameters, current position, or DGPS status. Query commands begin with the command string $PASHQ. 
    • $PASHQ,STA (crlf) to query which satellites are locked and signal strength.
      • TIME: 18:38:31 UTC
        LOCKED:03 23 16
        COUNT :54 26 17
    • NMEA 0183 ASCII byte strings following a dollar sign ($) character  Data fields are separated by commas, Checksum character delimiter and NMEA checksum bytes are recognized by the DG16 but are optional. The hexadecimal checksum is computed by exclusive OR-ing all of the bytes in the message between, but not including, the dollar sign ($) and the asterisk .  Messages end with the standard NMEA message terminator characters [CRLF].
    •  
    • $PASHS,NME,POS,A,ON,1   comprehensive position information through port A at a set rate (1HZ)
      • $PASHR,POS,0,08,164152.90,3721.06962,N,12156.12176,W,+00003.16,????,008.64,000.55,+000.03,01.7,01.0,01.4,00.9,GH00*20
      • $GPGGA,174807.00,,,,,0,00,,,M,,M,,*45
      • Parm Description Range (FUL/STD) Example
        m1 UTC time (hhmmss.s) of the position fix 0 to 235959.99 174807.00,
        m2 Latitude of the position fix (ddmm.mmmmm) 0 to 9000.00000 ,
        c3 Latitude sector N or S ,
        m4 Longitude of the position fix (dddmm.mmmmm) 0 to 18000.00000 ,
        c5 Longitude sector E or W ,
        d6 GPS quality indicator
        • 0---Invalid position or position not available
        • 1---GPS Standard Positioning Service (SPS)
        mode (C/A code), fix valid
        • 2---Differential GPS, SPS mode, fix valid
        • 3---GPS Precise Positioning Service (PPS)
        mode (P-code). N/A for DG16
        • 4---Real Time Kinematic. System used in RTK
        mode with fixed integers. N/A for DG16
        • 5---Float RTK. Satellite system used in RTK
        mode, floating integers. N/A for DG16
        • 6---Estimated (dead reckoning) mode
        • 7---Manual input mode
        • 8---Simulator mode
        0, 1, 2, 6, 7, or 8 0,
        d7 Number of satellites used in position computation 3 to 14 00,
        d8 HDOP (horizontal dilution of precision) 00.0 to 99.9 ,
        f9 Altitude above Mean Sea Level (geoidal height) -1000.00 to
        18000.00
        ,
        c10 Altitude unit of measure (always M) M M,
        d11 Geoidal separation value -999.99 to 999.99 ,
        c12 Geoidal separation unit of measure (always M) M M,
        d13 Age of differential corrections (seconds) 0 to 999.999 ,
        d14 Differential base station ID number 0 to 1023 ,*
        hh Checksum 2-character hex 45
               


    • AshtecApp Test results
    • ./ashtechapp -dev /dev/ttyS7
      • 08:48:27.572 INFO [AuvApplication] You should override AuvApplication::run()
      • 08:48:27.604 WARN [GpsUtils] Not a GGA sentence: S,NME,ALL,A,OFF
      • 08:48:27.627 WARN [GpsUtils] Not a GGA sentence: $PASHS,NME,GGA,A,ON
      • 08:48:48.432 ERROR [SerialDriver] gpsDriver::readRecord() - serial device timed out
      • 08:48:48.436 ERROR [StreamSerialDriver] run() - Got error from readRecord()
    • ./ashtechapp -dev /dev/ttyS6
    • minicom session
      • $GPGGA,174807.00,,,,,0,00,,,M,,M,,*45
      • $GPGGA,215157.00,,,,,0,00,,,M,,M,,*4D
  • BluefinBatt
    • ./bluefinBatt -n 3 -dev /dev/ttyS9 
    • Reading log4cxx configuration file "/home/auv/prj/auv-linux/onboard/sampleConfig
      /log4cxx.cfg"
      16:14:15.082 WARN [BluefinBattApp] Using fake values: nBatteries=1, abortVoltage
      =9, terminateVoltage=5
      16:14:15.090 INFO [BluefinBatt] BluefineBatt::init() - 1 batteries on 10 second
      interval
      16:14:15.092 ERROR [SerialDevice] cfsetispeed() to baud 9600 failed
      16:14:15.094 ERROR [SerialDevice] cfsetospeed() failed
      16:14:15.099 INFO [BluefinBatt] BluefinBatt::init() - querying for batt ids
      16:14:15.103 INFO [BluefinBatt] BluefinBatt::init() - battery echo is !?
  • Crossbow (gyro compass)
    • auv@mvc-debian4:~/prj/auv-linux/onboard/devices/crossbow$ ./crossbow -dev /dev/ttyS11
      Reading log4cxx configuration file "/home/auv/prj/auv-linux/onboard/sampleConfig/log4cxx.cfg"
      16:12:05.748 ERROR [AttributeParser] Attributes::parse() - Couldn't open Crossbow
    • Constants attributes file "/home/auv/prj/auv-linux/onboard/sampleConfig/crossbo
      w.cfg"
    • 16:12:05.754 ERROR [Crossbow] VehicleConstants -- Caught exception while loading vehicle constants
      IOR:010000001300000049444c3a6175762f4168727349463a312e30000001000000000000006400
      0000010102000d0000003133342e38392e33322e313600000d0a0e000000fe45c0d5470000329100
      0000000200000200000000000000080000000100000000545441010000001c000000010000000100
      01000100000001000105090101000100000009010100
      16:12:05.788 INFO [AuvApplication] You should override AuvApplication::run()
    • 16:12:05.790 ERROR [SerialDevice] cfsetispeed() to baud 38400 failed
      16:12:05.792 ERROR [SerialDevice] cfsetospeed() failed
      16:12:05.794 ERROR [SerialDevice] _F_SETFL failed
    • 16:12:05.797 ERROR [SerialDevice] _F_SETFL failed
    • AuvSystem::milliSleep -- Sleeping for 0 secs and 1000000000 nsec16:12:05.807 INF
      O [Crossbow] Crossbow.cc: device->read succeeded
      16:12:05.809 INFO [Crossbow] Crossbow.cc: I think the serial number is 427819033
      5 (ff0000ff)
      16:12:05.819 ERROR [Crossbow] processRecord(): Checksum does not agree
      16:12:06.830 ERROR [Crossbow] processRecord(): Checksum does not agree
      16:12:07.834 ERROR [Crossbow] processRecord(): Checksum does not agree
    •  
  • seabird
    • ./seabird37 -n ctdDriver2 -dev tcp:sci1-dmo1:10001
      • 06:21:16.646 DEBUG [SerialDevice] printTermios() - not implemented for socket
        06:21:16.648 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:16.651 DEBUG [CorbaUtils] call nameService->bind_new_context() for CTD
        06:21:16.661 DEBUG [CorbaUtils] context already bound
        06:21:16.665 DEBUG [CorbaUtils] call bind() for CTD
        06:21:16.675 DEBUG [CorbaUtils] invoke prepareToRun()
      • 06:21:16.677 DEBUG [CorbaUtils] Activate POA manager
        06:21:16.679 DEBUG [CorbaUtils] Run the ORB in a new thread
        06:21:16.681 DEBUG [CorbaUtils] return from registerService()
      • 06:21:16.684 DEBUG [Seabird37App] Leaving Seabird37App.initialize()
        06:21:16.686 INFO [AuvApplication] You should override AuvApplication::run()
      • 06:21:17.655 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:17.657 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:17.660 DEBUG [SerialDevice] readUntil: read ?
        06:21:17.662 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:17.664 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:18.671 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:18.673 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:18.675 DEBUG [SerialDevice] readUntil: read ?
        06:21:18.677 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:18.679 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:19.683 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:19.685 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:19.687 DEBUG [SerialDevice] readUntil: read ?
        06:21:19.689 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:19.691 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:20.695 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:20.697 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:20.699 DEBUG [SerialDevice] readUntil: read ?
        06:21:20.701 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:20.703 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:21.707 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:21.709 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:21.711 DEBUG [SerialDevice] readUntil: read ?
        06:21:21.713 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:21.715 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:21.717 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:21.719 DEBUG [SerialDevice] readUntil: read ?
        06:21:21.721 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:21.723 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:21.725 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:21.727 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:21.729 DEBUG [SerialDevice] readUntil: read P
        06:21:21.731 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:21.733 DEBUG [Seabird37] setLineFormat
      • 06:21:21.735 DEBUG [SerialDevice] printTermios() - not implemented for socket
        06:21:21.737 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:22.743 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:22.745 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:22.747 DEBUG [SerialDevice] readUntil: read
        06:21:22.749 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:22.751 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:23.755 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:23.757 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:23.759 DEBUG [SerialDevice] readUntil: read
        06:21:23.761 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:23.763 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:24.767 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:24.769 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:24.771 DEBUG [SerialDevice] readUntil: read
      • 06:21:24.773 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:24.775 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:25.779 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:25.781 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:25.783 DEBUG [SerialDevice] readUntil: read
        06:21:25.785 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:25.787 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:26.791 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:26.793 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:26.795 DEBUG [SerialDevice] readUntil: read
        06:21:26.797 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:26.799 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:26.801 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:26.803 DEBUG [SerialDevice] readUntil: read
      • 06:21:26.805 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:26.807 DEBUG [SerialDevice] (null): wrote 5 chars: STOP
        06:21:26.809 DEBUG [SerialDevice] (null): wrote 1 chars:
        06:21:26.811 DEBUG [SerialDevice] readUntil: term = S>
      • 06:21:26.813 DEBUG [SerialDevice] readUntil: read S
        06:21:26.816 DEBUG [SerialDevice] SerialDevice::confirm() - Timed Out
        06:21:26.817 DEBUG [SerialDriver] setState() - newState = 3
        06:21:26.819 DEBUG [EventProvider] publish() - publisher=CTD, type=NewState
        06:21:26.821 DEBUG [EventProvider] publish() - proxy->push_structured_event
        06:21:26.827 DEBUG [EventProvider] EventProvider::publish() -  event pushed
        06:21:26.829 DEBUG [EventProvider] publish() -  return
        06:21:26.831 ERROR [AuvService] CTD::initialize() failed after 2 tries
    • parosci pressure sensor
      • ./parosci
      • 06:39:37.270 DEBUG [SerialDevice] Current ispeed setting: 13
      • 06:39:37.271 DEBUG [SerialDevice] Current ospeed setting: 13
      • 06:39:37.273 DEBUG [SerialDevice] change to speed setting 9600
      • 06:39:37.275 ERROR [SerialDevice] cfsetispeed() to baud 9600 failed
        06:39:37.277 ERROR [SerialDevice] cfsetospeed() failed
        06:39:37.279 DEBUG [SerialDevice] New ispeed setting: 13
      • 06:39:37.281 DEBUG [SerialDevice] New ospeed setting: 13
      • 06:39:37.282 DEBUG [SerialDevice] SerialDevice: done...
      • 06:39:37.404 ERROR [Parosci] Failed to read serial number
        06:39:37.407 ERROR [AuvService] Failed to read serial numbre
    • teledyne - dvl 
      • ./teledyne -dev /dev/ttyS5
      • ...Timed out while looking for "workSite" service
        13:32:31.476 INFO [AuvApplication] You should override AuvApplication::run()
      • 13:32:31.730 ERROR [TeledyneDvl]  wakeupDvl: Failed to establish comms with DVL
        13:32:32.034 ERROR [TeledyneDvl]  wakeupDvl: Failed to establish comms with DVL
        13:32:32.886 INFO [TeledyneDvl]
        [BREAK Wakeup A]
        Navigator Broadband ADCP Version 9.18
        RD Instruments (c) 1996-2004
        All Rights Reserved.
        >
        13:32:32.913 INFO [TeledyneDvl] PD0
        >
        13:32:32.926 INFO [TeledyneDvl] BK1
        >
        13:32:32.945 INFO [TeledyneDvl] TP00:00.33
        >
        13:32:32.966 INFO [TeledyneDvl] TE00:00:0.00
        >
        13:32:32.990 INFO [TeledyneDvl] BL,10,010,100
        >
        13:32:33.006 INFO [TeledyneDvl] BP001
        >
        13:32:33.026 INFO [TeledyneDvl] CF11010
        >
        13:32:33.040 INFO [TeledyneDvl] CB611
        >
         Baud index = 6.
        13:32:33.041 INFO [TeledyneDvl] initialize - Baud rate set to 15.
      • 13:32:33.054 INFO [TeledyneDvl] EX10011
        >
        13:32:33.072 INFO [TeledyneDvl] EA+04500
        >
        13:32:33.084 INFO [TeledyneDvl] WP0001
        >
        13:32:33.094 INFO [TeledyneDvl] WN25
        >
        13:32:33.094 INFO [TeledyneDvl] initialize - The number of cells is 25.
      • 13:32:33.102 INFO [TeledyneDvl] WV210
        >
        13:32:33.103 INFO [TeledyneDvl] initialize - 14 valid commands read in from dvl.
        cfg.
      • 13:32:33.113 INFO [TeledyneDvl] EC1490
        >
        13:32:33.119 INFO [TeledyneDvl]
      •  
  • A good DVL record in PD0 format (1466 bytes) looks like

7F7FDB02000714004F0088005201B8011E028402000009124A42002C041901009001B00001400B00

E80300003C13941100007D1D5A029E010105320026004D00000248B1150900000000000000000080

007E0008040A04193A1000000003060000AA2C27FFB9002300790A000007000000FFFF4DFFFF468

19F04C10088000000000000000000000000010A0031004400008000800080008000800080008000800

08000800080008000800080008000800080008000800080008000800080008000800080008000800080

00800080008000800080008000800080008000800080008000800080008000800080008000800080008

00080008000800080008000800080008000800080008000800080008000800080008000800080008000

80008000800080008000800080008000800080008000800080008000800080008000800080008000800

080008000800080008000800002485252305F6823264F551F0C25270E0814180D05120D050A090C06

0E0C0A03090A09071302090D0402080908080D0B0407080C070A0406060C08030A0A0A0A0603090

306060C060C040705070C0E060A0906070A0C0B0805070708070A07060D0708060D0003483F45393

5362E2D2D2D2B2B2A29292A2827272A2826272A2726282A2625292B2624282B2625282B2624292B

2625262A2625282B2625282A2624262B2624272B2625272B2625262B2624282B2625292A2625282B

2625272B2625272B2625282B2625282B00046400000000006400000064000000640000006400000064

00000064000000640000006400000064000000640000006400000064000000640000006400000064000

00064000000640000006400000064000000640000006400000064000000640000006400000601000000

DC1E0005E80300000000000000000000000000800080008000800000000000000000000064000A000A

0064000700D6002700AA00C0CA88850000000000000064C40900000000000000000001000100C03A6D74

CrossBow Output

auv@mvc-debian4:~/prj/auv-linux/onboard/devices/crossbow$ . run
Reading log4cxx configuration file "/home/auv/prj/auv-linux/onboard/sampleConfig/log4cxx.cfg"
14:56:03.622 DEBUG [CorbaUtils] get ORB:
14:56:03.642 DEBUG [CorbaUtils] get POA:
14:56:03.664 DEBUG [CorbaUtils] Looking for event channel "EventChannel" in name service:

14:56:03.669 DEBUG [CorbaUtils] Found event channel "EventChannel"

14:56:03.675 DEBUG [CorbaUtils] Create provider servant

14:56:03.693 DEBUG [CorbaUtils] Create consumer servant

14:56:03.701 DEBUG [parseComplex] isIdentifier -- I've been asked to test the word crossbowPeriod
14:56:03.701 DEBUG [parseComplex] isIdentifier -- I've been asked to test the word 100
14:56:03.702 DEBUG [parseComplex] Parsing attribute crossbowPeriod = 100
14:56:03.703 DEBUG [parseComplex] No current item .. using the provided attributes CrossbowConstants
14:56:03.704 DEBUG [Attributes] Attributes::parse() - size=3

14:56:03.705 DEBUG [Attributes] Attributes::parse() - compare attribute name crossbowPeriod to input name crossbowPeriod

14:56:03.706 DEBUG [Attributes] Attributes::parse() -- Found value for crossbowPeriod
14:56:03.706 DEBUG [Attributes] Attributes::parse() -- crossbowPeriod is set
14:56:03.708 DEBUG [Attributes] Attribute crossbowPeriod is hasDefault = true, isSet = true
14:56:03.708 DEBUG [Attributes] Attribute debug is hasDefault = true, isSet = false
14:56:03.709 DEBUG [Attributes] Attribute dumpHex is hasDefault = true, isSet = false
14:56:03.710 DEBUG [Attributes] Attributes::verify() -- Attribute set CrossbowConstants is done
14:56:03.730 DEBUG [CrossbowApp] Launch instrument driver thread
IOR:010000001300000049444c3a6175762f4168727349463a312e300000010000000000000064000000010102000d0000003133342e38392e33322e31360000750e0e000000fef3d6774800001553000000000200000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100
14:56:03.734 DEBUG [CorbaUtils] Ahrs already active...
14:56:03.737 DEBUG [CorbaUtils] call nameService->bind_new_context() for Ahrs
14:56:03.746 DEBUG [CorbaUtils] context already bound
14:56:03.749 DEBUG [CorbaUtils] call bind() for Ahrs
14:56:03.759 DEBUG [CorbaUtils] call rebind() for Ahrs
14:56:03.763 DEBUG [CorbaUtils] invoke prepareToRun()

14:56:03.764 DEBUG [CorbaUtils] Activate POA manager
14:56:03.765 DEBUG [CorbaUtils] Run the ORB in a new thread
14:56:03.766 DEBUG [CorbaUtils] return from registerService()

14:56:03.767 DEBUG [CrossbowApp] Leaving CrossbowApp.initialize()
14:56:03.781 INFO [AuvApplication] run() - just sleeps by default
14:56:03.768 DEBUG [Crossbow] Crossbow::initialize : Initializing Crossbow driver
14:56:03.785 ERROR [SerialDevice] cfsetispeed() to baud 38400 failed
14:56:03.785 ERROR [SerialDevice] cfsetospeed() failed
14:56:03.786 DEBUG [Crossbow] Crossbow.cc: Setting polled mode
14:56:03.789 DEBUG [Crossbow] Crossbow::initialize :     ...done!
14:56:03.789 DEBUG [Crossbow] Crossbow.cc: Setting polled mode
14:56:03.790 DEBUG [Crossbow] Crossbow.cc: In getSerialNumber()
AuvSystem::milliSleep -- Sleeping for 0 secs and 1000000000 nsec14:56:03.816 INFO [Crossbow] Crossbow.cc: device->read succeeded
14:56:03.818 INFO [Crossbow] Crossbow.cc: The serial number is 4278190147 (ff000043)
14:56:03.821 DEBUG [Crossbow] Crossbow.cc: Setting polled mode
14:56:03.860 DEBUG [Crossbow] R =    4.71 : P =    6.26 : Y =   43.16
14:56:04.852 DEBUG [Crossbow] R =    4.72 : P =    6.28 : Y =   43.13
14:56:05.856 DEBUG [Crossbow] R =    4.71 : P =    6.26 : Y =   43.12
14:56:06.860 DEBUG [Crossbow] R =    4.70 : P =    6.27 : Y =   43.11
14:56:07.864 DEBUG [Crossbow] R =    4.73 : P =    6.27 : Y =   43.12
14:56:08.868 DEBUG [Crossbow] R =    4.71 : P =    6.25 : Y =   43.21
14:56:09.872 DEBUG [Crossbow] R =    4.71 : P =    6.28 : Y =   43.19
14:56:10.876 DEBUG [Crossbow] R =    4.69 : P =    6.28 : Y =   43.13
14:56:11.880 DEBUG [Crossbow] R =    4.72 : P =    6.29 : Y =   43.11
14:56:12.884 DEBUG [Crossbow] R =    4.70 : P =    6.26 : Y =   43.11
14:56:13.888 DEBUG [Crossbow] R =    4.70 : P =    6.26 : Y =   43.10
14:56:14.893 DEBUG [Crossbow] R =    4.72 : P =    6.28 : Y =   43.23
14:56:15.896 DEBUG [Crossbow] R =    4.69 : P =    6.27 : Y =   43.17
 


 

mvc-debian4
  1. install debian 4.0 - root password is dorado1, auv user password is dorado1.   hostname is mvc-debian4
  2. [root] install (aptitude and apt-get) the debian packages needed for auv-pkgs
  3. [root] cvs checkout auv-pkgs, build and install each using the supplied '*.bat" scripts 
  4. [auv] cvs checkout auv-shared and build (make in top dir)
  5. [auv] cvs checkout auv-linux, comment out the lines with javac (112) and idlj (135) in onboard/taskIF/Makefile, in onboard 'make all'
  6.  

misc

tar cvzf foo.tgz cps100


AHRS300CAManual.pdf (application/pdf)
Document generated by Confluence on Feb 04, 2026 08:05